/**
给你一个下标从 0 开始、大小为 n x n 的整数矩阵 grid ，返回满足 Ri 行和 Cj 列相等的行列对 (Ri, Cj) 的数目。
如果行和列以相同的顺序包含相同的元素（即相等的数组），则认为二者是相等的
 */

/**
 *
输入：grid = [[3,2,1],[1,7,6],[2,7,7]]
输出：1
解释：存在一对相等行列对：- (第 2 行，第 1 列)：[2,7,7]

输入：grid = [[3,1,2,2],[1,4,4,5],[2,4,2,2],[2,4,2,2]]
输出：3
解释：存在三对相等行列对：
- (第 0 行，第 0 列)：[3,1,2,2]
- (第 2 行, 第 2 列)：[2,4,2,2]
- (第 3 行, 第 2 列)：[2,4,2,2]
 */

/**
 * 思路
 * 遍历数组,找到每一列的数据，作为键存入对象中，值为出现的个数，若有相同的键，值加一
 * 再次遍历，判断数组的每项是否存在于对象中，存在，则count加上obj[key]
 */
var equalPairs = function (grid) {
    const n = grid.length
    let cols = {}
    let count = 0
    for (let i = 0; i < n; i++) {
        for (let m = 0; m < n; m++) {
            array.push(grid[m][i])
        }
        if (array.join(',') in cols)
            cols[array.join(',')]++
        else
            cols[array.join(',')] = 1
    }
    for (let i = 0; i < n; i++) {
        if (grid[i].join(',') in cols)
            count += cols[grid[i].join(',')]
    }
    return count
};